/*
 * firings.h
 *
 *  Created on: 11.04.2012
 *      Author: delgado
 */

#ifndef FIRINGS_H_
#define FIRINGS_H_

#include <list>
using std::list;
#include <iostream>
using std::ostream;
#include <vector>
using std::vector;

namespace neurignacio{

typedef unsigned char data_t;	// 8-bit number
typedef unsigned int number_t;
typedef float real;
typedef unsigned int Neuron;
typedef list<Neuron> NeuronList;

class Pattern : public list< NeuronList >
{
protected:
	number_t n;
	real a;
public:
	Pattern(const number_t n, const real a=0);
	void generate(const number_t m);
	vector<data_t> AsVector(const number_t pattern=0);
	friend ostream& operator<<(ostream& out, const Pattern& pattern);
};


} // end namespace neurignacio

#endif /* FIRINGS_H_ */
